package com.dragon.modules.yuegou.entity.coupon;

import com.baomidou.mybatisplus.annotation.TableName;
import com.dragon.modules.yuegou.enums.coupon.ParkApplyStatus;
import com.dragon.modules.yuegou.enums.coupon.ParkApplyType;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 停车券券申请表实体类<br>
 * 对应的表为：coup_park_apply<br>
 *
 * @author pbuilder generated
 * @date 2021-05-11 17:09:45
 * @company sgy
 * @version 2.0
 */
@TableName("coup_park_apply")
@ApiModel(description = "停车券券申请表")
public class ParkApplyEntity {

	/**  */
	protected String id;

	/** [枚举]券类型：0-停车券-PARK、1-优惠券-DISCOUNT */
	@ApiModelProperty("[枚举]券类型：0-停车券-PARK、1-优惠券-DISCOUNT")
	protected ParkApplyType type;

	/** 订单号 */
	@ApiModelProperty("订单号")
	protected String orderNo;

	/** 商圈ID */
	@ApiModelProperty("商圈ID")
	protected String busdId;

	/** 商户ID */
	@ApiModelProperty("商户ID")
	protected String merchantId;

	/** 申请购买数量 */
	@ApiModelProperty("申请购买数量")
	protected Integer buyNum;

	/** 审核确认数量 */
	@ApiModelProperty("审核确认数量")
	protected Integer checkNum;

	/** 有效起始时间 */
	@ApiModelProperty("有效起始时间")
	protected LocalDateTime beginTime;

	/** 有效结束时间 */
	@ApiModelProperty("有效结束时间")
	protected LocalDateTime endTime;

	/** 申请人 */
	@ApiModelProperty("申请人")
	protected String applyBy;

	/** 申请时间 */
	@ApiModelProperty("申请时间")
	protected LocalDateTime applyTime;

	/** 审核人 */
	@ApiModelProperty("审核人")
	protected String checkBy;

	/** 审核时间 */
	@ApiModelProperty("审核时间")
	protected LocalDateTime checkTime;

	/** 审核反馈 */
	@ApiModelProperty("审核反馈")
	protected String checkRs;

	/** [枚举]状态：0-待提交-READY、1-待审核-UNCHECK、2-审核通过-PASS、3-审核未通过-UNPASS、4-已支付-PAYED、5-已失效-INVALID、6-预支付-PREPAID */
	@ApiModelProperty("[枚举]状态：0-待提交-READY、1-待审核-UNCHECK、2-审核通过-PASS、3-审核未通过-UNPASS、4-已支付-PAYED、5-已失效-INVALID、6-预支付-PREPAID")
	protected ParkApplyStatus status;

	/** 审核有效起始时间 */
	@ApiModelProperty("审核有效起始时间")
	protected LocalDateTime checkBeginTime;

	/** 审核有效结束时间 */
	@ApiModelProperty("审核有效结束时间")
	protected LocalDateTime checkEndTime;

	/** 已使用数量 */
	@ApiModelProperty("已使用数量")
	protected Integer useNum;

	/** 作废数量 */
	@ApiModelProperty("作废数量")
	protected Integer invalidNum;

	/** skuId */
	@ApiModelProperty("skuId")
	protected String skuId;

	/** 审核金额 */
	@ApiModelProperty("审核金额")
	protected BigDecimal checkPrice;

	/** 支付现金 */
	@ApiModelProperty("支付现金")
	protected BigDecimal payCash;

	/** 备注信息 */
	@ApiModelProperty("备注信息")
	protected String remarks;

	/**
	 * 构造一个空停车券券申请表实体对象
	 */
	public ParkApplyEntity(){
		super();
	}

	/**
	 * 依据其它对象的信息构造一个停车券券申请表实体对象
	 *
	 * @param other 其它对象
	 */
	public ParkApplyEntity(ParkApplyEntity other){
		super();
		this.id = other.id;
		this.type = other.type;
		this.orderNo = other.orderNo;
		this.busdId = other.busdId;
		this.merchantId = other.merchantId;
		this.buyNum = other.buyNum;
		this.checkNum = other.checkNum;
		this.beginTime = other.beginTime;
		this.endTime = other.endTime;
		this.applyBy = other.applyBy;
		this.applyTime = other.applyTime;
		this.checkBy = other.checkBy;
		this.checkTime = other.checkTime;
		this.checkRs = other.checkRs;
		this.status = other.status;
		this.checkBeginTime = other.checkBeginTime;
		this.checkEndTime = other.checkEndTime;
		this.useNum = other.useNum;
		this.invalidNum = other.invalidNum;
		this.skuId = other.skuId;
		this.checkPrice = other.checkPrice;
		this.payCash = other.payCash;
		this.remarks = other.remarks;
	}


	/**
	 * 获取
	 *
	 * @return id
	 */
	public String getId() {
		return id;
	}

	/**
	 * 设置
	 *
	 * @param id
	 */
	public void setId(String id) {
		this.id = id;
	}

	/**
	 * 获取[枚举]券类型：0-停车券-PARK、1-优惠券-DISCOUNT
	 *
	 * @return type [枚举]券类型：0-停车券-PARK、1-优惠券-DISCOUNT
	 */
	public ParkApplyType getType() {
		return type;
	}

	/**
	 * 设置[枚举]券类型：0-停车券-PARK、1-优惠券-DISCOUNT
	 *
	 * @param type [枚举]券类型：0-停车券-PARK、1-优惠券-DISCOUNT
	 */
	public void setType(ParkApplyType type) {
		this.type = type;
	}

	/**
	 * 获取订单号
	 *
	 * @return orderNo 订单号
	 */
	public String getOrderNo() {
		return orderNo;
	}

	/**
	 * 设置订单号
	 *
	 * @param orderNo 订单号
	 */
	public void setOrderNo(String orderNo) {
		this.orderNo = orderNo;
	}

	/**
	 * 获取商圈ID
	 *
	 * @return busdId 商圈ID
	 */
	public String getBusdId() {
		return busdId;
	}

	/**
	 * 设置商圈ID
	 *
	 * @param busdId 商圈ID
	 */
	public void setBusdId(String busdId) {
		this.busdId = busdId;
	}

	/**
	 * 获取商户ID
	 *
	 * @return merchantId 商户ID
	 */
	public String getMerchantId() {
		return merchantId;
	}

	/**
	 * 设置商户ID
	 *
	 * @param merchantId 商户ID
	 */
	public void setMerchantId(String merchantId) {
		this.merchantId = merchantId;
	}

	/**
	 * 获取申请购买数量
	 *
	 * @return buyNum 申请购买数量
	 */
	public Integer getBuyNum() {
		return buyNum;
	}

	/**
	 * 设置申请购买数量
	 *
	 * @param buyNum 申请购买数量
	 */
	public void setBuyNum(Integer buyNum) {
		this.buyNum = buyNum;
	}

	/**
	 * 获取审核确认数量
	 *
	 * @return checkNum 审核确认数量
	 */
	public Integer getCheckNum() {
		return checkNum;
	}

	/**
	 * 设置审核确认数量
	 *
	 * @param checkNum 审核确认数量
	 */
	public void setCheckNum(Integer checkNum) {
		this.checkNum = checkNum;
	}

	/**
	 * 获取有效起始时间
	 *
	 * @return beginTime 有效起始时间
	 */
	public LocalDateTime getBeginTime() {
		return beginTime;
	}

	/**
	 * 设置有效起始时间
	 *
	 * @param beginTime 有效起始时间
	 */
	public void setBeginTime(LocalDateTime beginTime) {
		this.beginTime = beginTime;
	}

	/**
	 * 获取有效结束时间
	 *
	 * @return endTime 有效结束时间
	 */
	public LocalDateTime getEndTime() {
		return endTime;
	}

	/**
	 * 设置有效结束时间
	 *
	 * @param endTime 有效结束时间
	 */
	public void setEndTime(LocalDateTime endTime) {
		this.endTime = endTime;
	}

	/**
	 * 获取申请人
	 *
	 * @return applyBy 申请人
	 */
	public String getApplyBy() {
		return applyBy;
	}

	/**
	 * 设置申请人
	 *
	 * @param applyBy 申请人
	 */
	public void setApplyBy(String applyBy) {
		this.applyBy = applyBy;
	}

	/**
	 * 获取申请时间
	 *
	 * @return applyTime 申请时间
	 */
	public LocalDateTime getApplyTime() {
		return applyTime;
	}

	/**
	 * 设置申请时间
	 *
	 * @param applyTime 申请时间
	 */
	public void setApplyTime(LocalDateTime applyTime) {
		this.applyTime = applyTime;
	}

	/**
	 * 获取审核人
	 *
	 * @return checkBy 审核人
	 */
	public String getCheckBy() {
		return checkBy;
	}

	/**
	 * 设置审核人
	 *
	 * @param checkBy 审核人
	 */
	public void setCheckBy(String checkBy) {
		this.checkBy = checkBy;
	}

	/**
	 * 获取审核时间
	 *
	 * @return checkTime 审核时间
	 */
	public LocalDateTime getCheckTime() {
		return checkTime;
	}

	/**
	 * 设置审核时间
	 *
	 * @param checkTime 审核时间
	 */
	public void setCheckTime(LocalDateTime checkTime) {
		this.checkTime = checkTime;
	}

	/**
	 * 获取审核反馈
	 *
	 * @return checkRs 审核反馈
	 */
	public String getCheckRs() {
		return checkRs;
	}

	/**
	 * 设置审核反馈
	 *
	 * @param checkRs 审核反馈
	 */
	public void setCheckRs(String checkRs) {
		this.checkRs = checkRs;
	}

	/**
	 * 获取[枚举]状态：0-待提交-READY、1-待审核-UNCHECK、2-审核通过-PASS、3-审核未通过-UNPASS、4-已支付-PAYED、5-已失效-INVALID、6-预支付-PREPAID
	 *
	 * @return status [枚举]状态：0-待提交-READY、1-待审核-UNCHECK、2-审核通过-PASS、3-审核未通过-UNPASS、4-已支付-PAYED、5-已失效-INVALID、6-预支付-PREPAID
	 */
	public ParkApplyStatus getStatus() {
		return status;
	}

	/**
	 * 设置[枚举]状态：0-待提交-READY、1-待审核-UNCHECK、2-审核通过-PASS、3-审核未通过-UNPASS、4-已支付-PAYED、5-已失效-INVALID、6-预支付-PREPAID
	 *
	 * @param status [枚举]状态：0-待提交-READY、1-待审核-UNCHECK、2-审核通过-PASS、3-审核未通过-UNPASS、4-已支付-PAYED、5-已失效-INVALID、6-预支付-PREPAID
	 */
	public void setStatus(ParkApplyStatus status) {
		this.status = status;
	}

	/**
	 * 获取审核有效起始时间
	 *
	 * @return checkBeginTime 审核有效起始时间
	 */
	public LocalDateTime getCheckBeginTime() {
		return checkBeginTime;
	}

	/**
	 * 设置审核有效起始时间
	 *
	 * @param checkBeginTime 审核有效起始时间
	 */
	public void setCheckBeginTime(LocalDateTime checkBeginTime) {
		this.checkBeginTime = checkBeginTime;
	}

	/**
	 * 获取审核有效结束时间
	 *
	 * @return checkEndTime 审核有效结束时间
	 */
	public LocalDateTime getCheckEndTime() {
		return checkEndTime;
	}

	/**
	 * 设置审核有效结束时间
	 *
	 * @param checkEndTime 审核有效结束时间
	 */
	public void setCheckEndTime(LocalDateTime checkEndTime) {
		this.checkEndTime = checkEndTime;
	}

	/**
	 * 获取已使用数量
	 *
	 * @return useNum 已使用数量
	 */
	public Integer getUseNum() {
		return useNum;
	}

	/**
	 * 设置已使用数量
	 *
	 * @param useNum 已使用数量
	 */
	public void setUseNum(Integer useNum) {
		this.useNum = useNum;
	}

	/**
	 * 获取作废数量
	 *
	 * @return invalidNum 作废数量
	 */
	public Integer getInvalidNum() {
		return invalidNum;
	}

	/**
	 * 设置作废数量
	 *
	 * @param invalidNum 作废数量
	 */
	public void setInvalidNum(Integer invalidNum) {
		this.invalidNum = invalidNum;
	}

	/**
	 * 获取skuId
	 *
	 * @return skuId skuId
	 */
	public String getSkuId() {
		return skuId;
	}

	/**
	 * 设置skuId
	 *
	 * @param skuId skuId
	 */
	public void setSkuId(String skuId) {
		this.skuId = skuId;
	}

	/**
	 * 获取审核金额
	 *
	 * @return checkPrice 审核金额
	 */
	public BigDecimal getCheckPrice() {
		return checkPrice;
	}

	/**
	 * 设置审核金额
	 *
	 * @param checkPrice 审核金额
	 */
	public void setCheckPrice(BigDecimal checkPrice) {
		this.checkPrice = checkPrice;
	}

	/**
	 * 获取支付现金
	 *
	 * @return payCash 支付现金
	 */
	public BigDecimal getPayCash() {
		return payCash;
	}

	/**
	 * 设置支付现金
	 *
	 * @param payCash 支付现金
	 */
	public void setPayCash(BigDecimal payCash) {
		this.payCash = payCash;
	}

	/**
	 * 获取备注信息
	 *
	 * @return remarks 备注信息
	 */
	public String getRemarks() {
		return remarks;
	}

	/**
	 * 设置备注信息
	 *
	 * @param remarks 备注信息
	 */
	public void setRemarks(String remarks) {
		this.remarks = remarks;
	}

	public String toString() {
		return new StringBuilder().append("ParkApplyEntity{").
				append("id=").append(id).
				append(",type=").append(type).
				append(",orderNo=").append(orderNo).
				append(",busdId=").append(busdId).
				append(",merchantId=").append(merchantId).
				append(",buyNum=").append(buyNum).
				append(",checkNum=").append(checkNum).
				append(",beginTime=").append(beginTime).
				append(",endTime=").append(endTime).
				append(",applyBy=").append(applyBy).
				append(",applyTime=").append(applyTime).
				append(",checkBy=").append(checkBy).
				append(",checkTime=").append(checkTime).
				append(",checkRs=").append(checkRs).
				append(",status=").append(status).
				append(",checkBeginTime=").append(checkBeginTime).
				append(",checkEndTime=").append(checkEndTime).
				append(",useNum=").append(useNum).
				append(",invalidNum=").append(invalidNum).
				append(",skuId=").append(skuId).
				append(",checkPrice=").append(checkPrice).
				append(",payCash=").append(payCash).
				append(",remarks=").append(remarks).
				append('}').toString();
	}

	/**
	 * 复制对象
	 *
	 * @return 复制后的新实体对象
	 */
	public ParkApplyEntity copy() {
		return new ParkApplyEntity(this);
	}

	/**  */
	public static final String COL_ID = "id";

	/** [枚举]券类型：0-停车券-PARK、1-优惠券-DISCOUNT */
	public static final String COL_TYPE = "type";

	/** 订单号 */
	public static final String COL_ORDER_NO = "order_no";

	/** 商圈ID */
	public static final String COL_BUSD_ID = "busd_id";

	/** 商户ID */
	public static final String COL_MERCHANT_ID = "merchant_id";

	/** 申请购买数量 */
	public static final String COL_BUY_NUM = "buy_num";

	/** 审核确认数量 */
	public static final String COL_CHECK_NUM = "check_num";

	/** 有效起始时间 */
	public static final String COL_BEGIN_TIME = "begin_time";

	/** 有效结束时间 */
	public static final String COL_END_TIME = "end_time";

	/** 申请人 */
	public static final String COL_APPLY_BY = "apply_by";

	/** 申请时间 */
	public static final String COL_APPLY_TIME = "apply_time";

	/** 审核人 */
	public static final String COL_CHECK_BY = "check_by";

	/** 审核时间 */
	public static final String COL_CHECK_TIME = "check_time";

	/** 审核反馈 */
	public static final String COL_CHECK_RS = "check_rs";

	/** [枚举]状态：0-待提交-READY、1-待审核-UNCHECK、2-审核通过-PASS、3-审核未通过-UNPASS、4-已支付-PAYED、5-已失效-INVALID、6-预支付-PREPAID */
	public static final String COL_STATUS = "status";

	/** 审核有效起始时间 */
	public static final String COL_CHECK_BEGIN_TIME = "check_begin_time";

	/** 审核有效结束时间 */
	public static final String COL_CHECK_END_TIME = "check_end_time";

	/** 已使用数量 */
	public static final String COL_USE_NUM = "use_num";

	/** 作废数量 */
	public static final String COL_INVALID_NUM = "invalid_num";

	/** skuId */
	public static final String COL_SKU_ID = "sku_id";

	/** 审核金额 */
	public static final String COL_CHECK_PRICE = "check_price";

	/** 支付现金 */
	public static final String COL_PAY_CASH = "pay_cash";

	/** 备注信息 */
	public static final String COL_REMARKS = "remarks";
}
